package org.TCC_NOVO.client;

import org.TCC_NOVO.client.modelo.OcorrenciaTarefa;
import org.TCC_NOVO.client.modelo.OcorrenciaUnidade;
import org.TCC_NOVO.client.modelo.Projeto;
import org.TCC_NOVO.client.modelo.Roteiro;
import org.TCC_NOVO.client.modelo.TipoAvaliacao;
import org.TCC_NOVO.client.modelo.Unidade;
import org.TCC_NOVO.client.modelo.Usuario;
import org.TCC_NOVO.client.modelo.Objetivo;
import org.TCC_NOVO.client.modelo.Atividade_Roteiro;
import com.google.gwt.user.client.rpc.ServiceDefTarget;

import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import java.util.ArrayList;
import java.util.List;
import org.TCC_NOVO.client.modelo.Papel;
import org.TCC_NOVO.client.modelo.Slide;


@RemoteServiceRelativePath("controller")
public interface GWTService extends RemoteService{
    
    public static final String SERVICE_URI = "/controller";
    
    public static class Util {
      public static GWTServiceAsync getInstance() {
         GWTServiceAsync instance = (GWTServiceAsync) GWT.create(GWTService.class);
         ServiceDefTarget target = (ServiceDefTarget) instance;
         target.setServiceEntryPoint(GWT.getModuleBaseURL() + SERVICE_URI);
         return instance;
      }
    }

    public boolean Conexao(String odbc);

    public String efetuaLogin(String nick, String senha);
    public List<Usuario> retornarDadosUsuarios(String nomePapel);
    public void salvarUsuario(Usuario usuario);
    public void excluirUsuario(String nick);

    public List<Papel> retornarDadosPapeis();

    public int IncluirRegistro(String Query);
    public void ExcluirRegistro(String Query);
    public void EditarRegistro(String Query);
    public ArrayList<Projeto> RetornarDadosProjeto(String Query);
    public ArrayList<Unidade> RetornarDadosMatriz(String Query);
    public Roteiro RetornarDadosRoteiro(int codigoUnidade);
    public ArrayList<Unidade> RetornarDadosUnidade(String Query);
    public ArrayList<TipoAvaliacao> RetornarDadosTipoAvaliacao(String Query);
    public void GravarDadosUnidade(Unidade unid);
    public void AlterarDadosUnidade(Unidade unid);
    public void ExcluirDadosUnidade(Unidade unid);
    public void GravarDadosRoteiro(Roteiro rote);
    public void AlterarDadosRoteiro(Roteiro rote);
    public void ItensRemovidosRoteiro(ArrayList<Atividade_Roteiro> lstAtividadeRoteiro, ArrayList<Slide> lstSlides);
    public ArrayList<Atividade_Roteiro> RetornarDadosTarefa(String Query);
    public ArrayList<OcorrenciaTarefa> RetornarDadosOcoTarefa(String Query);
    public ArrayList<OcorrenciaUnidade> RetornarDadosOcoUnidade(String Query);
    public ArrayList<Objetivo> RetornarDadosObjetivos(String Query);
    public ArrayList<Usuario> RetornarDadosUsuarioTarefas(String Query);
    public ArrayList<Unidade> RetornarDadosUnidadeConcluidas(String Query);
    public boolean GerarUnidadeSCORM(String arquivo, String nomeProj, String nomeUnid, String nomeArqRaiz);
    public void adicionarTemplateSlide(Slide template);
    public boolean removerTemplateSlide(Slide template);
    public ArrayList<Slide> getListaTemplateSlide();
}
